/*=========================================================================
 Copyright (c) 2008, Nokia Corporation and/or its subsidiary(-ies).
 All rights reserved.

 Redistribution and use in source and binary forms, with or without
 modification, are permitted provided that the following conditions are met:
 
     * Redistributions of source code must retain the above copyright
       notice, this list of conditions and the following disclaimer.
     * Redistributions in binary form must reproduce the above copyright
       notice, this list of conditions and the following disclaimer in the
       documentation and/or other materials provided with the distribution.
     * Neither the name of the Nokia Corporation and/or its subsidiary(-ies)nor the
       names of its contributors may be used to endorse or promote products
       derived from this software without specific prior written permission.

 THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY
 EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
 MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL
 THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
 SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT
 OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
 HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR 
 TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
 SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
=========================================================================================*/

#ifndef NCV_H
#define NCV_H
/*! \mainpage Nokia Computer Vision Library (NCV Lib) 1.0 API Documentation
 *
 * \section contents_sec Contents
 *
 * <ul>
 * <li><a class="qindex" href="main.html">Main Page</a> &nbsp;
 * <li><a class="qindex" href="hierarchy.html">Class Hierarchy</a> &nbsp;
 * <li><a class="qindex" href="classes.html">Alphabetical List</a> &nbsp;
 * <li><a class="qindex" href="annotated.html">Compound List</a> &nbsp;
 * <li><a class="qindex" href="files.html">File List</a> &nbsp;
 * <li><a class="qindex" href="functions.html">Compound Members</a> &nbsp; </ul>
 *
 * \section intro_sec Introduction
 *
 * This library extends the image processing and math capabilities of the
 * Series 60 platform. It is especially targeted for applications using
 * computer vision techniques on camera phones.
 *
 * The library provides an image class, CNokiaCVImage for handling RGB,
 * grayscale and black and white images. There are a collection of functions
 * that work with the image class to perform arithmetic operations,
 * transformations, feature extraction, color conversions, and other types
 * of processing on the images. In addition, operations to compute image
 * statistics such as histograms and pixel color means are provided.
 *
 * The library has two algorithms (CCamus and CMotionHistoryImage) to determine motion estimates and
 * history. In addition, external PC software to calibrate the mobile
 * camera is included.
 *
 * Matrix and vector classes CNokiaCVMatrix and CNokiaCVVector allow creation of
 * matrices and vectors of arbitrary dimensionality. Math operations and
 * some linear algebra techniques that work with these classes are
 * available in the library.
 *
 * \section usage_sec Usage
 *
 * To use the library include the "ncv.h" header file and add a reference to
 * ncvlib.lib to the .mmp file of you application project.
 * <br>
 */


/**
 * The following is to get VS.NET 2003 Intellisense to work with
 * the ncvLib more certainly. This might still not be enough.
 * This is also defined in _ansi.h, but for some reason the
 * VS.NET Intellisense is not always able to locate the #define from
 * there. _ansi.h includes definitions for other compilers.
 */
#ifndef EXPORT_C
/**
We need to annotate the functions which will be exported from the ESTLIB DLL,
but mustn't conflict with the definitions in <e32std.h>
@publishedAll
@released
*/
#ifdef __VC32__
#define IMPORT_C __declspec(dllexport)
#define EXPORT_C __declspec(dllexport)
#endif
#endif /* EXPORT_C */

// INCLUDES
//System Includes
#include <e32base.h>  // CBase, link against euser.lib

//Ncv includes
#include "ncvErrors.h"
#include "ncvFixed.h"
#include "ncvImageOp.h"

//Image and Video operations.

#include "ncvImage.h"
#include "ncvArithmeticOp.h"
#include "ncvColorConversionOp.h"
#include "ncvResizeOp.h"
#include "ncvRotationOp.h"
#include "ncvComparisonOp.h"
#include "ncvConvolutionOp.h"
#include "ncvCornerDetectionOp.h"
#include "ncvEdgeDetectionOp.h"
#include "ncvGaussianSmoothOp.h"
#include "ncvMedianFilterOp.h"
#include "ncvMorphologicalOp.h"
#include "ncvShearOp.h"
#include "ncvTemplateMatchOp.h"
#include "ncvThresholdOp.h"
#include "ncvWarpOp.h"
#include "ncvImagePyramid.h"
#include "ncvImageStatistics.h"
#include "ncvImageOperations.h"
#include "ncvEgoMovement.h"
#include "ncvOpticalFlow.h"
#include "ncvCamus.h"

//Math operations
#include "ncvMath.h"
#include "ncvMatrix.h"
#include "ncvVector.h"
#include "ncvEigenvalues.h"
#include "ncvSVD.h"

#endif // NCV_H

// End of File
